plasticContainer <- list(
  greenBox=c("paper","scissor"),     # location 1
  redBox=c(1L,3L,2.5),               # location 2
  blueBox=c(TRUE,FALSE,TRUE,TRUE)    # location 3
)
plasticContainer[c("greenBox","redBox")] # or plasticContainer[c(1,2)]
$`greenBox`
[1] "paper"   "scissor"

$redBox
[1] 1.0 3.0 2.5
plasticContainer[c("greenBox")] # or plasticContainer[c(1,2)]
$`greenBox`
[1] "paper"   "scissor"
plasticContainer[["greenBox"]] # or plasticContainer[[1]]
[1] "paper"   "scissor"
plasticContainer$greenBox
[1] "paper"   "scissor"
plasticContainer$greenBox[1]
[1] "paper"
plasticContainer[["greenBox"]][1]
[1] "paper"
plasticContainer["greenBox"][1]
$`greenBox`
[1] "paper"   "scissor"
plasticContainer["greenBox"][2]
$<NA>
NULL
plasticContainer["greenBox"]$greenBox[1]
[1] "paper"
install.packages("plotly")
Error in install.packages : Updating loaded packages
library(readr)
download.file("https://github.com/tpemartin/github-data/blob/master/plotly_4070_neda.Rda?raw=true",destfile = "plotly_4070_neda.Rda")
trying URL 'https://github.com/tpemartin/github-data/blob/master/plotly_4070_neda.Rda?raw=true'
Content type 'application/octet-stream' length 12400 bytes (12 KB)
downloaded 12 KB
load("plotly_4070_neda.Rda")
Error in load("plotly_4070_neda.Rda") : error reading from connection
plotly_4070_neda[[2]]
Error: object 'plotly_4070_neda' not found
plotly_4070_neda$x$layout$shapes[[1]]$opacity<-0.8
plotly_4070_neda
library(readr)
Warning message:
In strsplit(code, "\n", fixed = TRUE) :
  input string 1 is invalid in this locale
transcriptData <- read_csv("https://raw.githubusercontent.com/tpemartin/github-data/master/transcript100_102.csv",
                  col_types = cols(
                    學期成績="n"
                  ))
totalCredits<-function(x){
  transcriptData[transcriptData$學號==x,]->subsample 
  subsample %>%
    mutate(
      及格=(學期成績>=60)
    ) %>%
    summarise(
      學號=學號[1],
      總修習學分數=sum(學分數),
      總實得學分數=sum(學分數[及格])
    )  
}
transcriptData -> subsample
Warning message:
In strsplit(code, "\n", fixed = TRUE) :
  input string 1 is invalid in this locale
subsample$學號 %>% unique -> 符合條件學號
#0
creditResults<-vector("list",length(符合條件學號))
Warning message:
In strsplit(code, "\n", fixed = TRUE) :
  input string 1 is invalid in this locale
i<-1
#1
符合條件學號[i]
[1] "d55dP1052"
#2
totalCredits(符合條件學號[i])
#3
creditResults[[i]] <- totalCredits(符合條件學號[i])
for(i in seq_along(符合條件學號)){
  creditResults[[i]] <- totalCredits(符合條件學號[i])
}

i<-200

creditResults[[200]]
library(readr)
library(tidyr)
libraryData <- read_csv("https://raw.githubusercontent.com/tpemartin/github-data/master/libraryData2.csv")
Parsed with column specification:
cols(
  戼㹥Ǹ戼㸹 = col_character(),
  愼㹥搼㸱挼㸴y挼㸳昼㹥愼㸷O = col_character(),
  愼㹥搼㸱挼㸴y愼㸶W戼㹡搼㸹 = col_character(),
  愼㹥搼㸱挼㸴y愼㸵X愼㹡愼㸹愼㸴攼㸹戼㸴挼㸱 = col_integer(),
  愼㹥搼㸱挼㸴y挼㸰]挼㸲æa = col_character(),
  愼㹥搼㸱挼㸴y愼㸴W愼㹣[愼㸶~愼㸴攼㹢 = col_date(format = ""),
  愼㸴J戼㹥Ǧ~ = col_integer(),
  Ū愼㹡̦~愼㹦挼㸵 = col_integer(),
  戼㹥ǰ| = col_character(),
  愼㹤ɾ\愼㹥ɶ愼㸱 = col_datetime(format = ""),
  戼㹥Ǵ挼㸱 = col_integer(),
  戼㹥Ǧ~ = col_integer(),
  戼㹥Ǩt = col_character()
)
libraryData %>%
  group_by(學院) %>%
  nest
libraryDataNested
library(stringr)
library(dplyr)
df <- data.frame(
  x = 1:3,
  y = c("a", "d,e,f", "g,h"),
  stringsAsFactors = F
)
df %>%
  mutate(y = str_split(y, ",")) -> dfSplit
LS0tDQp0aXRsZTogIjIwMTgtMTItMjYiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KYGBge3J9DQpwbGFzdGljQ29udGFpbmVyIDwtIGxpc3QoDQogIGdyZWVuQm94PWMoInBhcGVyIiwic2Npc3NvciIpLCAgICAgIyBsb2NhdGlvbiAxDQogIHJlZEJveD1jKDFMLDNMLDIuNSksICAgICAgICAgICAgICAgIyBsb2NhdGlvbiAyDQogIGJsdWVCb3g9YyhUUlVFLEZBTFNFLFRSVUUsVFJVRSkgICAgIyBsb2NhdGlvbiAzDQopDQpgYGANCg0KYGBge3J9DQpwbGFzdGljQ29udGFpbmVyW2MoImdyZWVuQm94IiwicmVkQm94IildICMgb3IgcGxhc3RpY0NvbnRhaW5lcltjKDEsMildDQpgYGANCg0KYGBge3J9DQpwbGFzdGljQ29udGFpbmVyW2MoImdyZWVuQm94IildICMgb3IgcGxhc3RpY0NvbnRhaW5lcltjKDEsMildDQojcGxhc3RpY0NvbnRhaW5lclsiZ3JlZW5Cb3giXQ0KYGBgDQoNCmBgYHtyfQ0KcGxhc3RpY0NvbnRhaW5lcltbImdyZWVuQm94Il1dICMgb3IgcGxhc3RpY0NvbnRhaW5lcltbMV1dDQpgYGANCg0KYGBge3J9DQpwbGFzdGljQ29udGFpbmVyJGdyZWVuQm94DQpgYGANCg0KYGBge3J9DQpwbGFzdGljQ29udGFpbmVyJGdyZWVuQm94WzFdDQpgYGANCg0KYGBge3J9DQpwbGFzdGljQ29udGFpbmVyW1siZ3JlZW5Cb3giXV1bMV0NCmBgYA0KDQpgYGB7cn0NCnBsYXN0aWNDb250YWluZXJbImdyZWVuQm94Il1bMV0NCmBgYA0KDQpgYGB7cn0NCnBsYXN0aWNDb250YWluZXJbImdyZWVuQm94Il1bMl0NCmBgYA0KDQpgYGB7cn0NCnBsYXN0aWNDb250YWluZXJbImdyZWVuQm94Il0kZ3JlZW5Cb3hbMV0NCmBgYA0KDQpgYGB7cn0NCmluc3RhbGwucGFja2FnZXMoInBsb3RseSIpDQpgYGANCg0KYGBge3J9DQpkb3dubG9hZC5maWxlKCJodHRwczovL2dpdGh1Yi5jb20vdHBlbWFydGluL2dpdGh1Yi1kYXRhL2Jsb2IvbWFzdGVyL3Bsb3RseV80MDcwX25lZGEuUmRhP3Jhdz10cnVlIixkZXN0ZmlsZSA9ICJwbG90bHlfNDA3MF9uZWRhLlJkYSIpDQpsb2FkKCJwbG90bHlfNDA3MF9uZWRhLlJkYSIpDQpsaWJyYXJ5KHBsb3RseSkNCnBsb3RseV80MDcwX25lZGENCmBgYA0KDQpgYGB7cn0NCnBsb3RseV80MDcwX25lZGEkbGF5b3V0JHNoYXBlc1tbMV1dJG9wYWNpdHkgPC0gMC43DQpgYGANCg0KYGBge3J9DQpwbG90bHlfNDA3MF9uZWRhJHgkbGF5b3V0JHNoYXBlc1tbMV1dJG9wYWNpdHk8LTAuOA0KcGxvdGx5XzQwNzBfbmVkYQ0KYGBgDQoNCmBgYHtyfQ0KbGlicmFyeShyZWFkcikNCnRyYW5zY3JpcHREYXRhIDwtIHJlYWRfY3N2KCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vdHBlbWFydGluL2dpdGh1Yi1kYXRhL21hc3Rlci90cmFuc2NyaXB0MTAwXzEwMi5jc3YiLA0KICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scygNCiAgICAgICAgICAgICAgICAgICAg5a245pyf5oiQ57i+PSJuIg0KICAgICAgICAgICAgICAgICAgKSkNCg0KdG90YWxDcmVkaXRzPC1mdW5jdGlvbih4KXsNCiAgdHJhbnNjcmlwdERhdGFbdHJhbnNjcmlwdERhdGEk5a246JmfPT14LF0tPnN1YnNhbXBsZSANCiAgc3Vic2FtcGxlICU+JQ0KICAgIG11dGF0ZSgNCiAgICAgIOWPiuagvD0o5a245pyf5oiQ57i+Pj02MCkNCiAgICApICU+JQ0KICAgIHN1bW1hcmlzZSgNCiAgICAgIOWtuOiZnz3lrbjomZ9bMV0sDQogICAgICDnuL3kv67nv5LlrbjliIbmlbg9c3VtKOWtuOWIhuaVuCksDQogICAgICDnuL3lr6blvpflrbjliIbmlbg9c3VtKOWtuOWIhuaVuFvlj4rmoLxdKQ0KICAgICkgIA0KfQ0KYGBgDQoNCmBgYHtyfQ0KdHJhbnNjcmlwdERhdGEgLT4gc3Vic2FtcGxlDQpzdWJzYW1wbGUk5a246JmfICU+JSB1bmlxdWUgLT4g56ym5ZCI5qKd5Lu25a246JmfDQpgYGANCg0KYGBge3J9DQojMA0KY3JlZGl0UmVzdWx0czwtdmVjdG9yKCJsaXN0IixsZW5ndGgo56ym5ZCI5qKd5Lu25a246JmfKSkNCmk8LTENCiMxDQrnrKblkIjmop3ku7blrbjomZ9baV0NCiMyDQp0b3RhbENyZWRpdHMo56ym5ZCI5qKd5Lu25a246JmfW2ldKQ0KIzMNCmNyZWRpdFJlc3VsdHNbW2ldXSA8LSB0b3RhbENyZWRpdHMo56ym5ZCI5qKd5Lu25a246JmfW2ldKQ0KYGBgDQoNCmBgYHtyfQ0KZm9yKGkgaW4gc2VxX2Fsb25nKOespuWQiOaineS7tuWtuOiZnykpew0KICBjcmVkaXRSZXN1bHRzW1tpXV0gPC0gdG90YWxDcmVkaXRzKOespuWQiOaineS7tuWtuOiZn1tpXSkNCn0NCmBgYA0KDQppPC0yMDANCmBgYHtyfQ0KY3JlZGl0UmVzdWx0c1tbMjAwXV0NCmBgYA0KDQpgYGB7cn0NCmxpYnJhcnkocmVhZHIpDQpsaWJyYXJ5KHRpZHlyKQ0KbGlicmFyeURhdGEgPC0gcmVhZF9jc3YoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS90cGVtYXJ0aW4vZ2l0aHViLWRhdGEvbWFzdGVyL2xpYnJhcnlEYXRhMi5jc3YiKQ0KYGBgDQoNCmBgYHtyfQ0KbGlicmFyeURhdGEgJT4lDQogIGdyb3VwX2J5KOWtuOmZoikgJT4lDQogIG5lc3QoLmtleT0i5ZCE6Zmi5YCf6Zax6LOH5paZIikgLT4NCiAgbGlicmFyeURhdGFOZXN0ZWQNCmBgYA0KDQpgYGB7cn0NCmxpYnJhcnlEYXRhTmVzdGVkDQpgYGANCg0KYGBge3J9DQpsaWJyYXJ5KHN0cmluZ3IpDQpsaWJyYXJ5KGRwbHlyKQ0KZGYgPC0gZGF0YS5mcmFtZSgNCiAgeCA9IDE6MywNCiAgeSA9IGMoImEiLCAiZCxlLGYiLCAiZyxoIiksDQogIHN0cmluZ3NBc0ZhY3RvcnMgPSBGDQopDQpkZiAlPiUNCiAgbXV0YXRlKHkgPSBzdHJfc3BsaXQoeSwgIiwiKSkgLT4gZGZTcGxpdA0KYGBgDQoNCg==